Callback Function 其實描述的就是一個情境。
Callback Function 就是將函式當參數,傳進另一個函式裡面。
Callback Function 跟一般的函式沒什麼不同,不同的是被呼叫執行的時機,一般的函式被呼叫後就會馬上執行,Callback Function 通常在達成一些條件之後才會執行。
像下面的函式 handle 我們就叫做 Callback Function
我們將函式 handle 作為參數傳進函式 test 裡面,所以 handle 就是 Calback Function
def test(arg):
print(arg)
def handle():
print(100)
test(handle)
Callback Function 回傳進其他函式裡面,那在其他函式裡要如何呼叫 Callback Function 呢?
只要使用參數名呼就可以呼叫 Callback Function
def test(arg):
arg() # 呼叫 Callback Function
def handle():
print(100)
test(handle) # 將 handle 作為 Callback Function 傳進 test 函式裡面
參數是在呼叫的時候傳進去
Callback Function 是在其他的函式裡被呼叫的
如果希望將參數傳進 Callback Function 那就要在呼叫 Callback Function 的函式裡設定好參數
def test(arg):
arg(50) # 將 50 作為參數傳進 Callback Function
def handle(data):
print(data)
test(handle)
Callback Function 跟一般的函式不同的地方有兩點
Callback Function 提供了要傳入的函式的彈性,所以我們可以傳不同的函式進去看看
def add(n1,n2,cb):
cb(n1+n2) # 呼叫函式 handle1 ,並將 n1+n2 的結果作為參數傳進 Callback Function
def handle1(result):
print("結果是",result)
add(3,4,handle1) # 印出 結果是 7
我們可以利用 Callback Function 提供的彈性,傳不同函式看看
就可以印出不一樣的語言
def add(n1,n2,cb):
cb(n1+n2)
def handle1(result):
print("結果是",result)
def handle2(result):
print("Result of Add is",result)
add(3,4,handle1) # 結果是 7
add(5,6,handle2) # Result of Add is 11